// 导入Vue
import Vue from 'vue';
// 导入Vuex
import Vuex from 'vuex';
// 导入持久化存储插件
import createPersistedState from 'vuex-persistedstate'
//导入注册好的模块
import search from './modules/search.js'

// 在Vue中应用插件/注册插件
Vue.use(Vuex);

// 配置对象
const store =new Vuex.Store({
	// 状态:存储共享的数据
	state:{
		name:"",
		role:"",
	},
	// 创建同步函数,主要作用:修改state内部的数据[类似组件computed]
	mutations:{},
	// 创建异步函数,主要作用:先被组件调用,然后在函数内部调用mutations的同步函数
	actions:{},
	//设置数据:不改变state数据,return 返回另外一个形式 [类似组件computed]
	getters:{},
	// 设置模块开发:指向按照功能将数据分别进行不同的模块
	// 跟注册登录相关的数据划分一个模块;购物车相关的数据一个模块;订单数据一个模块[数据量庞大且操作较多的功能区域]
	modules:{
		// 应用
		search,
	},
	
	// 设置store持久化存储,与本地缓存同步
	plugins:[createPersistedState()]
})

// 导出
export default store;